#pragma once

#include <vector>
#include <string>
#include "Box3.h"


namespace soft_renderer
{
	class Geometry
	{
	private:
		std::vector<float> _vertexArray;
		std::vector<float> _normalArray;
		std::vector<uint32_t> _faceArray;

	public:
		Geometry();
		~Geometry();

		std::vector<float>& vertexArray();
		std::vector<float>& normalArray();
		std::vector<uint32_t>& faceArray();

		void computeVertexNormals();

		Box3 boundingBox;
		void computeBoundingBox();

		void appendGeometry(Geometry& geom);
		void appendGeometryRigid(Geometry& geom, Matrix4 m);
	};
}
